package com.suning.sawp.intf.sms;

import com.suning.framework.vcsms.client.entity.Result;

/**
 * 发送短信验证码
 * 
 * @author 14062606
 * 
 */
public interface SmsService {
	/**
     * 短信相关的常量类
     * 
     * @author 14043094
     *
     */
    interface SmsConstants {
        /**
         * 短信模版常量，群发的场景
         */
        String SCENEID_MSG_SEND_GROUP = "SNYPA-M-001";
        /**
         * 短信模版常量，菜单编辑
         */
        String SCENEID_MENU_EDIT = "SNYPA-M-002";
        /**
         * 短信模版常量，回复设置短信验证
         */
        String SCENEID_MSG_REPLY = "SNYPA-M-003";

        /**
         * 平台登录消息提醒
         */
        String SCENEID_LOGIN_MSG_REMIND = "WECHAT-M-007";

        /**
         * 账号设置消息提醒
         */
        String SCENEID_SETUP_ACCOUNT_MSG_REMIND = "WECHAT-M-007";
        
        /**
         * 店+设备绑定，短信验证码
         */
        String SCENEID_DEVICE_VALID = "SNSAWP-M-001";

        /**
         * 短信验证码，验证成功后删除
         */
        String SMSCODE_DEL_AFTER_AUTH = "1";

        /**
         * 短信验证码，验证成功后不删除
         */
        String SMSCODE_NODEL_AFTER_AUTH = "0";
    }

    /**
     * generateSmsCode 生成短信验证码 〈功能详细描述〉
     * 
     * @param mobileNum
     *            手机号码
     * @param requestIp
     *            短信验证码
     * @param sceneId
     *            模板id
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    Result generateSmsCode(String mobileNum, String requestIp, String sceneId);

    /**
     * 
     * 功能描述: 生成短信验证码<br>
     * 〈功能详细描述〉
     *
     * @param mobileNum 手机号
     * @param account 账号
     * @param requestIp 请求IP
     * @param sceneId 模板ID
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    Result generateSmsCode(String mobileNum, String account, String requestIp, String sceneId);
    
    /**
     * validateSmsCode 验证短信验证码
     * 
     * @param mobileNum
     *            手机号码
     * @param smsCode
     *            短信验证码
     * @param delFlg
     *            校验成功是否删除
     * @param sceneId
     *            模板id
     * @return 返回验证结果
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    Result validateSmsCode(String mobileNum, String smsCode, String delFlg, String sceneId);
    
}
